﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dotUML.Core.Common
{
    /// <summary>
    /// IDiagramElement defines the basic interface for all diagram primitives.
    /// </summary>
    public interface IDiagramElement
    {
        /// <summary>
        /// Diagram element name.
        /// </summary>
        string Name
        {
            get;
            set;
        }

        /// <summary>
        /// Reference to a parent diagram.
        /// </summary>
        IDiagram ParentDiagram
        {
            get;
            set;
        }

        /// <summary>
        /// Defines if this element is a real one or a proxy.
        /// </summary>
        bool IsProxy
        {
            get;
            set;
        }

        /// <summary>
        /// Validates the correctness of a diagram element.
        /// </summary>
        /// <returns>true, if the element is correct. false, otherwise.</returns>
        bool Validate();
    }
}
